

package jetbrains.buildServer.server.rest.swagger.annotations;

import jetbrains.buildServer.server.rest.swagger.constants.LocatorDimensionDataType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface LocatorDimension {
  String value();
  String dataType() default LocatorDimensionDataType.STRING;
  String format() default "";
  String notes() default "";
  String allowableValues() default "";

  /**
   * Specify if marked dimension should not propagate to documentation for some reason, e.g. it is deemed experimental.
   */
  boolean hidden() default false;
}